package models.oppm
{

	import flash.events.EventDispatcher;
	
	import models.vos.accounts.ContactInfo;
	import models.vos.accounts.User;
	import models.vos.money.Budget;
	import models.vos.project.Company;
	import models.vos.project.Objective;
	import models.vos.project.Project;
	import models.vos.project.ProjectMember;
	import models.vos.project.Subjective;
	
	import mx.collections.ArrayCollection;
	
	public class ProjectManager extends EventDispatcher
	{
		[Bindable(Event="projectsListChanged")]
		public var projects:ArrayCollection;
		
		[Bindable(Event="selectedProjectChanged")]
		public var project:Project;
		
		[Bindable] public var user:User;
		
		public function ProjectManager(){
			super();
		}
		public function createProject():void{
			project = new Project();
			projects.addItem( project );
		}
		
		public function fakeProject():Project{
			var project:Project = new Project();
			project.id = 1;
			
			//Main Definition setup
			project.projectName = "duProject Final Project";
			project.company = new Company("Hanoi Aptech");
			user.addToProject(project, true, 1);
			
			//Objectives and Subjectives
			project.mainObjective = "Tạo ra công cụ hỗ trợ quản lý hiệu quả mục tiêu, đầu việc, nhân sự, báo cáo, chi phí, thời gian cho các dự án." + 
					" Đồng thời tăng cường năng suất và hiệu quả làm việc hàng ngày của từng nhân viên với công cụ quản lý thời gian, tư liệu và thảo luận."
			project.objectives = new ArrayCollection();			
			project.objectives.addItem( new Objective("Easy-to-use and Impressive UI", 1) );
			project.objectives.addItem( new Objective("Reliable and Scalable performance", 2) );		
			project.objectives.addItem( new Objective("Good Technical Doc and website content", 3) );
			
			project.subjectives = new ArrayCollection();
			project.subjectives.addItem( new Subjective("Hoạt động nhóm hiệu quả", 1) );
				
			//Add member
			project.members = new ArrayCollection();
			
			var m1:ProjectMember = new ProjectMember("hoatle", "12345567", "hoatlevan@gmail.com", 2, 2, false);
			m2.contactInfo = new ContactInfo("Lê Văn Hoạt", "Hoạt Lê"); 
			project.members.addItem( m1	);
			var m2:ProjectMember = new ProjectMember("leanhduc", "1234567", "leanhduc1985@gmail.com", 3, 3, false);
			m2.contactInfo = new ContactInfo("Lê Anh Đức", "Anh Đức"); 
			project.members.addItem( m2 );
			
			
			//Budget and Timeline	
			project.startDate = new Date(2009, 5, 16);
			project.targetDate = new Date(2009, 8, 15);
			project.dateStep = 7;
			project.budgets = new ArrayCollection();
			project.budgets.addItem( new Budget("People", 45000000, "VND", 1) );
			project.budgets.addItem( new Budget("Material", 60000000, "VND", 1) );
			project.budgets.addItem( new Budget("Services", 120, "USD", 1) );
			
			//Major Tasks
			project.majorTasks = new ArrayCollection();
			
			return project;	
		}
	}
}